package com.catoop.spring.prop;

import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
 * 重写属性文件中的值
 *
 * @author 单红宇(CSDN frbao)
 * @create 2017年3月12日
 */
public class PropertyPlaceholderConfigurerPro extends PropertyPlaceholderConfigurer {

	private DecryptPropsBean decryptPropsBean;

	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
			throws BeansException {
		try {
			// 对配置文件中需要解密的值进行解密
			getDecryptPropsBean().decryptProps(props);
		} catch (Exception e) {
			e.printStackTrace();
		}
		super.processProperties(beanFactoryToProcess, props);
	}

	public DecryptPropsBean getDecryptPropsBean() {
		if(this.decryptPropsBean == null)
			decryptPropsBean = new DecryptPropsBean();
		return decryptPropsBean;
	}

	public void setDecryptPropsBean(DecryptPropsBean decryptPropsBean) {
		this.decryptPropsBean = decryptPropsBean;
	}
	

}
